package com.copm.ifm.servers.sys.file;

import com.copm.ifm.servers.sys.entity.SysFile;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * 文件客户端 一个公共接口，将来供多个实现类去实现上传下载
 *
 * @author zzf
 * @date 2021/4/28 13:57
 */
public interface FileClient {

    /**
     * 文件上传
     *
     * @param path     存储路径
     * @param fileName 文件名
     * @param file     文件对象
     * @return 文件访问url
     */
    String uploadFile(String path, String fileName, MultipartFile file);

    /**
     * 文件下载
     *
     * @param sysFile 文件
     * @throws IOException IO异常
     */
    void downLoadFile(SysFile sysFile) throws IOException;


    /**
     * 删除文件
     *
     * @param path     存储路径
     * @param fileName 文件名
     * @return 是否成功
     */
    boolean deleteFile(String path, String fileName);

    /**
     * 客户端唯一标识
     *
     * @return
     */
    FileClientEnum getId();

}
